﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ILSample {
    class Program {
        static void Main(string[] args) {
        }
    }

    interface IA {
        void fn();
    }

    abstract class Methods :IA {

        void IA.fn() {
            
        }

        private int fn(int p1, ref int p2, out int p3, params int[] p4) {
            throw new NotSupportedException();
        }

        protected void fn(__arglist) {}

        public abstract void fn_abstract();

        public virtual void fn_virtual() { }

        public virtual void fn_virtual_final() { }

        class MethodImpl : Methods {

            public override void fn_abstract() {
                
            }

            public override void fn_virtual() {

            }

            public override sealed void fn_virtual_final() {

            }

        }

    }

    abstract class AA : Methods, IA {
        
    }
}
